Release 10.1A: OpenEdge Development:
Debugging and Troubleshooting


Logging levels for dynamic objects

There are two logging levels supported for DynObjects entry types: 2 (Basic) and 3 (Verbose). Setting logging to 4 (Extended), logs information as for 3 (Verbose).

Basic logging level (2)

The log entries for logging level 2 (Basic) include the following information, and any level above 1 (Errors) logs this information:

Here are sample BASIC log entries (with headers suppressed):

[05/10/31@14:07:15.892-0400] P-002702 T-002867 2 4GL DYNOBJECTS 
Created        MENU               Handle:1098 (x.p Line 4)  
[05/10/31@14:07:15.892-0400] P-002702 T-002867 2 4GL DYNOBJECTS 
Deleted        MENU               Handle:1098 (x.p Line 5)  
Created        BROWSE             Handle:1139 (y.p Line 29)  
[05/10/31@14:07:17.908-0400] P-002702 T-002867 2 4GL DYNOBJECTS 
Created        BROWSE             Handle:1139 (y.p Line 29)  
[05/10/31@14:07:17.908-0400] P-002702 T-002867 2 4GL DYNOBJECTS 
Created        BROWSE-COLUMN      Handle:1143 (y.p Line 63) Name: Cust-Num 
[Browse Handle:1139] 
[05/10/31@14:07:17.908-0400] P-002702 T-002867 2 4GL DYNOBJECTS 
Created        BUFFER      Handle:1144 (y.p Line 70) IMPLICIT Table:item 
[05/10/31@14:07:15.892-0400] P-002702 T-002867 2 4GL DYNOBJECTS 
Deleted        MENU               Handle:1098 (x.p Line 5) POOLDEL 

Verbose logging level (3)

Setting the logging level to 3 (Verbose), also logs object-pool related information.

First, level 3 adds pool information to the log entry every time a dynamic object is created that is being tracked, except PROCEDURE, MEMPTR, and BROWSE-COLUMN objects. PROCEDUREs always are in the Session pool. MEMPTR and LONGCHAR memory is not stored in a pool. The log entry for BROWSE-COLUMN objects contains the browse name or handle ID information in the creation log entry (as described above), so you can refer back to the browse creation entry to find out which pool contains the object.

Second, level 3 logs an extra entry every time a object-pool is created or deleted. This helps identify when OpenEdge deletes an object in the course of deleting a object pool, as opposed to when the application deletes the object explicitly.

There are two formats for the messages generated at level VERBOSE, depending on the action:

The following excerpt is from a log file (with headers suppressed) showing an example of how the pool information relates to the other messages:

Creating pool  mypool  (x.p Line 2) 
Created        MENU             Handle:1098 (x.p Line 4) Pool:mypool FROM x.p 
Deleted        MENU             Handle:1098 (x.p Line 5)  
Created        TOGGLE-BOX       Handle:1099 (x.p Line 7) Pool:mypool FROM x.p 
Deleting pool  mypool  (x.p Line 9) FROM x.p 
Deleted        TOGGLE-BOX       Handle:1099 (x.p Line 9) POOLDEL 


Copyright © 2005 Progress Software Corporation
www.progress.com
Voice: (781) 280-4000
Fax: (781) 280-4095